home *** CD-ROM | disk | FTP | other *** search
- {
- ╒════════════════════════════════════════════════════════════════════════╕
- │ │
- │ This UNIT was written for TURBO PASCAL 5.0 by: │
- │ │
- │ GEMINI SYSTEMS │
- │ P.O. BOX 7086 │
- │ BLOOMFIELD HILLS, MI 48302 │
- │ │
- │ │
- │ │
- │ To use in your programs, simply state UTILITY in your uses clause. │
- │ │
- │ example: PROGRAM prog_name; │
- │ USES utility; (Programs must be compiled with │
- │ the $V- Compiler Directive) │
- ├────────────────────────────────────────────────────────────────────────┤
- │ Modification History: │
- │ │
- │ Version Number Date Change Made │
- │ ───────────────────────────────────────────────────────────────────── │
- │ 7.5 03/21/89 Does not Change Textmode │
- │ 7.6 06/12/89 Add ENCRYPT, CENTER │
- │ 7.7 08/15/89 Restore FILEMODE in the │
- │ GET_FILE_NAME routine. │
- │ 7.8 09/01/89 Fix bug in READ_REAL │
- │ 7.9 09/07/89 Change READSTR to allow │
- │ positioning cursor at end of │
- │ input field. (for READSTR_BIG) │
- │ 8.0 09/11/89 Added the following routines: │
- │ SET_ATTR_BOX │
- │ FILE_OPEN │
- │ WRITE_X80_Y25; │
- │ RANDUM_NUMBER │
- │ FILE_EXIST │
- │ BEEP │
- │ READSTR_BIG │
- │ │
- ╘════════════════════════════════════════════════════════════════════════╛
- }
- UNIT UTILITY;
-
- INTERFACE
- USES CRT, DOS, PRINTER;
-
- CONST
- VERSION : STRING[15] = 'UTIL 8.0'; { Reset in Application if Desired }
- { Example: VERSION := 'V1.0'; }
- FUNC1 = #127;
- FUNC2 = #128;
- FUNC3 = #129;
- FUNC4 = #130;
- FUNC5 = #131;
- FUNC6 = #132;
- FUNC7 = #133;
- FUNC8 = #134;
- FUNC9 = #135;
- FUNC10 = #136;
- AF1 = #139;
- AF2 = #140;
- AF3 = #141;
- AF4 = #142;
- AF5 = #143;
- AF6 = #144;
- AF7 = #145;
- AF8 = #146;
- AF9 = #147;
- AF10 = #148;
- ALT_A = #151;
- ALT_B = #152;
- ALT_C = #153;
- ALT_D = #154;
- ALT_E = #155;
- ALT_F = #156;
- ALT_G = #157;
- ALT_H = #158;
- ALT_I = #159;
- ALT_J = #160;
- ALT_K = #161;
- ALT_L = #162;
- ALT_M = #163;
- ALT_N = #164;
- ALT_O = #165;
- ALT_P = #166;
- ALT_Q = #167;
- ALT_R = #168;
- ALT_S = #169;
- ALT_T = #170;
- ALT_U = #171;
- ALT_V = #172;
- ALT_W = #173;
- ALT_X = #174;
- ALT_Y = #175;
- ALT_Z = #176;
- CF1 = #177;
- PGUP = #178;
- PGDN = #179;
- UP = #180;
- DOWN = #181;
- LEFT = #191;
- RIGHT = #192;
- BACKUP = #194;
- HOMEKEY = #196;
- ENDKEY = #197;
- INSKEY = #198;
- DELKEY = #199;
- BACKSPACE= #8;
- TAB = #9;
- ENTER = #13;
- RETURN = #13;
- ESCAPE = #27;
-
- TYPE
- STR3 = STRING [3];
- STR8 = STRING [8];
- STR20 = STRING [20];
- STR80 = STRING [80];
- BUFFER = ARRAY [1..4000] OF CHAR; { Use for calls to SAVE_SCREEN }
- LINE_SET = SET OF 1..80; { Use for calls to SET_ATTR }
- CURTYPE = (BLOCK, { Use for calls to SET_CURSOR }
- UNDERLINE,
- NONE,
- HALF);
- ETYPE = SET OF CHAR;
- CTYPE = SET OF 1..80;
- TYPEN = (RNUM,LNUM,INUM);
-
- VAR
- CH : CHAR; { Global CHAR Variable }
- NOCONV : CHAR; { If included in EXITCH to READSTR }
- { LEFT or RIGHT is not converted to }
- { UP or DOWN if in first or last
- { position. }
- CLEAR : CHAR; { If included in EXITCH to READSTR }
- { the value being edited is set to }
- { spaces. }
- CGA_PRESENT: BOOLEAN; { Is TRUE if CGA-ABILITY is Present }
- EGA_PRESENT: BOOLEAN; { Is TRUE if EGA-ABILITY is Present }
-
- DOS_VER : STR3; { Contains DOS Version at Startup }
- { i.e. "3.3" }
-
- TIME : STR8; { Is set to Current Time at Startup }
- DATE : STR20; { Is set to Current Date at Startup }
-
- { Date & Time are updated when any }
- { of the following routines are }
- { called: }
- { READSTR Updates Time }
- { READ_REAL Updates Time }
- { READ_INT Updates Time }
- { READCHTIME Updates Time }
- { WRITE_TIME Updates Time }
- { WRITE_DATE Updates Date }
- { READCHT Updates Time }
-
- TIM : LONGINT; { Is used with START_TIMER at Entry }
- { or can be used for any Timer }
-
- P : ^BUFFER; { Pointer to Video Memory }
- CUR : CURTYPE; { Stores the Current Cursor Shape }
- DISPLAY : CHAR;
- NUM_INPUTS : INTEGER;
- ENTER_KEY : STRING[3]; { Contains the Symbol for Enter Key }
-
- CHANGED : BOOLEAN; { Set to TRUE or FALSE after each }
- { call to:
- READSTR
- READ_REAL
- READ_INT
- depending if that value has changed.}
-
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE BEEP;
-
- (* Nicer than CHR(7). *)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE BIN_LED(L : BYTE);
-
- { USES KEYBOARD LED'S TO TURN ON A BINARY NUMBER FROM 0 TO 7 }
- { }
- { BIN_LED(5) Used for Debugging, }
- { 0 Turns OFF CAPS, SCROLL, NUM }
- { 1 Turns ON SCROLL, OFF CAPS, NUM }
- { 2 Turns ON NUM, OFF CAPS, SCROLL }
- { BINARY VALUE 3 Turns ON SCROLL, NUM OFF CAPS }
- { CAPS NUM SCROLL 4 Turns ON CAPS, OFF SCROLL, NUM }
- { 5 Turns ON CAPS, SCROLL, OFF NUM }
- { 4 2 1 6 Turns ON CAPS, NUM, OFF SCROLL }
- { 7 Turns ON CAPS, NUM, SCROLL }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION CAPS_ARE_ON : BOOLEAN;
-
- { Returns TRUE if CAPS LOCK is ON. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE CAPS_OFF;
-
- { Turns CAPS LOCK KEY off. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE CAPS_ON;
-
- { Turns CAPS LOCK KEY on. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE CENTER(Y, ATTRIB : INTEGER; LINE : STRING);
-
- { CENTERS LINE ON STRING ON LINE Y }
- { USING ATTRIB FOR COLORS. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE CENTER_PRINT(LINE : STRING;
- LEN : INTEGER;
- VAR NEXTPOS : INTEGER;
- CR : BOOLEAN);
-
- { Prints LINE on Printer Centered on }
- { a line LEN characters long. }
- { NEXTPOS returns the cursor position }
- { off the print head. Set CR to True }
- { to issue a WRITELN or False to issue}
- { a WRITE. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION CHECK_KEYBOARD : CHAR;
-
- { If a key was pressed returns the }
- { character entered, else returns }
- { character #0. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION COMBINE(S1, S2 : STRING;
- MAX : INTEGER;
- INSERT_COMMA : BOOLEAN) : STRING;
- { }
- { S1 := 'Tom '; }
- { S2 := 'Hunter '; }
- { WRITELN(COMBINE(S2,S1,20,TRUE)); }
- { }
- { Result: Combines the two variables S1 & S2 }
- { Hunter, Tom removing trailing blanks from S1. }
- { If passed TRUE it will insert a }
- { comma between the two variables. }
-
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION COMMA(VAR VALUE; FIELDWIDTH,
- PLACES : INTEGER;
- NTYPE : TYPEN) : STRING;
-
-
- { WRITE(COMMA(R,I,J,RNUM)); Will take the real value }
- { R and return a string I }
- { R := 1234567.89 characters long with J }
- { WRITE(COMMA(R,12,2,RNUM)); decimal places. }
- { }
- { Result: }
- { 1,234,567.89 RNUM for REAL Numbers }
- { INUM for INTEGER Numbers }
- { LNUM for LONGINT Numbers }
- { }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE DOWN_SOUND;
-
- { Makes a Sound of Decreasing Pitch. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION DRIVE_READY(DRIVE : CHAR) : BOOLEAN;
-
- { IF DRIVE_READY('A') THEN Returns TRUE if drive is ready. }
- { ASSIGN(F,'A:TEST.DTA'); }
- { }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION ELAP_TIME(T : LONGINT) : LONGINT;
-
- { ELAP_TIME(TIM); Will Return the number of seconds }
- { that have elapsed since the last }
- { call to START_TIMER with TIM, or }
- { any other LONGINT variable. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE ENCRYPT(VAR LINE : STRING; I : INTEGER);
-
- { ENCRYPTS A STRING USING I AS KEY. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION FILE_EXIST(FILENAME : STRING) : BOOLEAN;
-
- (* Returns True if File exists or
- false if it does not. *)
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION FILE_OPEN(VAR F) : BOOLEAN;
-
- (* Returns True if File F is Open or
- returns False if it is closed. *)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE FW(X,Y : INTEGER; ATTR : BYTE; LINE : STR80);
-
- { FW(X,Y,$07,S); Writes the value of string }
- { or S at X,Y with 0 Background }
- { FW(X,Y,$01,S1+S2+'X'); color and 7 Foreground. }
- { This Procedure Supports }
- { 43 line mode. (1 >= Y <= 43 }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION GET_FILE_NAME(MASK : STRING; DEL : BOOLEAN) : STRING;
-
- { INSTRING := GET_FILE_NAME('*.*',TRUE);
-
- { Returns a selected filename }
- { and allows deletions if TRUE. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE GOTOXY43(X,Y : INTEGER);
-
- { GOTOXY43(10,43); This will move the cursor to }
- { 10,43 if 43 line mode is active }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE LINES25;
-
- { After a call to LINES43, this }
- { will return you to 25 line mode.}
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE LINES43;
-
- { If EGA card is present this }
- { will put you in 43 line mode. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION NUM_LOCK_IS_ON : BOOLEAN;
-
- { Returns TRUE if NUM-LOCK is ON. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE NUM_LOCK_OFF;
-
- { Turns NUM LOCK KEY off. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE NUM_LOCK_ON;
-
- { Turns NUM LOCK KEY on. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION PAD(VAR S : STRING; LEN : INTEGER) : STRING;
-
- { PAD(S,20); Will PAD String variable S to be }
- { 20 characters long. }
- (*════════════════════════════════════════════════════════════════════════*)
-
- PROCEDURE PATHEXEC(COMMAND : PATHSTR; PARMS : STRING);
-
- { Like Turbo Pascal's EXEC, except }
- { Searches the DOS path. }
- { Do not call SwapVectors before and }
- { after this routine. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE PRINT_SCREEN(X1,Y1,X2,Y2 : INTEGER; EXT : BOOLEAN);
-
- { }
- { PRINT_SCREEN(1,1,80,25,TRUE); Prints a section of the screen, }
- { bounded by the coordinates. The }
- { screen coordinates are the same as }
- { Turbo Pascal's WINDOW procedure. }
- { To print IBM Extended Graphic }
- { characters use TRUE. FALSE will }
- { print spaces instead of graphics. }
- { The above example would print the }
- { entire screen. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION PRINTER_NOT_READY : BOOLEAN;
-
- { Returns TRUE if the Line Printer is not ready. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION PRINTER_READY : BOOLEAN;
- { }
- { IF PRINTER_READY THEN If Printer is NOT READY, pops up }
- { WRITELN(LST,'HELLO WORLD'); a Window, asking for you to ready }
- { it. Pressing <ESC> returns FALSE. }
- { Turning Print ON, (or if it was }
- { already on) returns TRUE. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION RANDOM_NUMBER(LOW, HIGH : INTEGER) : INTEGER;
-
- (* Produces a Random number between
- 0 and 99. if LOW is less than 0
- or HIGH is greater than 99 will
- always return 0. Do not call this
- routine from a loop. It uses 1/100
- of a second from the system clock
- to generate the numbers. If called
- from within a loop it will return
- a sequence or pattern to its numbers.
- Works fine for a ocassional Random
- Number. *)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READCH(VAR CH : CHAR; ECHO : BOOLEAN);
-
- { READCH(CH,TRUE); TRUE for echo on screen. }
- { FALSE for no echo. }
- { If ALT-F10 is pressed it }
- { will call SHOW_VERSION. }
- { also converts F-KEYS to FUNC1..FUNC10, HOMEKEY, }
- { UP, DOWN, LEFT, RIGHT, ECT. }
- { }
- { READCH(CH,TRUE); }
- { IF CH = FUNC1 THEN CALL_HELP; }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READCHT(VAR CH : CHAR; ECHO : BOOLEAN; TOO : LONGINT);
-
- { Waits TOO seconds for a key to be pressed, IF no key is pressed }
- { within TOO seconds, Routine is exited leaving CH unchanged. }
- { }
- { READCHT(CH,FALSE,10); Waits 10 seconds for a key to be }
- { pressed, If not CH is unchanged. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READCHTIME(VAR CH : CHAR; ECHO : BOOLEAN; X,Y : INTEGER);
-
- { Continually Updates TIME at X,Y }
- { until a key is pressed. That }
- { key is returned in CH. }
- { If CH = 'M' Time will be in }
- { Military Time Format. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READ_INT(X,Y,LEN : INTEGER;
- PATTR : INTEGER;
- PROMPT : STR80;
- IATTR : INTEGER;
- VAR R : INTEGER;
- LOW,HIGH : INTEGER;
- EXITCH : ETYPE;
- ICOMA : BOOLEAN;
- TX, TY : INTEGER;
- CH : CHAR);
- (*
-
- WHERE X = X Location of where Prompt will start.
- Y = Y Location of where Prompt will start.
- LEN = Maximum Length of Field to be input.
- PATTR = Color attributes of Prompt.
- PROMPT = Prompt that will appear AT X,Y
- IATTR = Color attributes of Input Field.
- R = Variable Parameter being Edited.
- LOW = Lowest Value Allowed.
- HIGH = Highest Value Allowed.
- EXITCH = Characters Entered From Keyboard used to Exit Edit.
- ICOMA = True for comma insertion, false for no comma.
- TX,
- TY = Location on screen to update time (TX = 0 for
- no time)
- CH = 'M' for Military Time, else AM/PM
-
- If NOCONV is included in EXITCH then
- LEFT or RIGHT is not converted to
- UP or DOWN if in first or last
- position.
-
- If CLEAR is included in EXITCH then
- the value being edited is set to
- spaces.
-
- *)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READ_ONLY(NAME : STRING);
-
- { Sets Filename "NAME" to READ-ONLY.}
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READ_REAL(X,Y,LEN : INTEGER;
- PATTR : INTEGER;
- PROMPT : STR80;
- IATTR : INTEGER;
- VAR R : REAL;
- DPLACES : INTEGER;
- LOW,HIGH : REAL;
- EXITCH : ETYPE;
- ICOMA : BOOLEAN;
- TX, TY : INTEGER;
- CH : CHAR);
- (*
-
- WHERE X = X Location of where Prompt will start.
- Y = Y Location of where Prompt will start.
- LEN = Length of Field to be Input.
- PATTR = Color Attributes of Prompt.
- PROMPT = Prompt that will appear at X,Y
- IATTR = Color Attributes of Input Field.
- R = Variable Parameter being Edited.
- DPLACES = Number of Decimal Places.
- LOW = Lowest Value Allowed.
- HIGH = Highest Value Allowed.
- EXITCH = Characters Entered From Keyboard Used to Exit Edit.
- ICOMA = True for Comma Insertion, False for no commas.
- TX,
- TY = Location on Screen to Update Time (TX = 0 for
- no Time.)
- CH = 'M' for Military Time, else AM/PM
-
- If NOCONV is included in EXITCH then
- LEFT or RIGHT is not converted to
- UP or DOWN if in first or last
- position.
-
- If CLEAR is included in EXITCH then
- the value being edited is set to
- spaces.
- *)
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION READ_SCREEN(X,Y : INTEGER) : CHAR;
-
- { CH := READ_SCREEN(10,15); }
- { Returns the character on the screen }
- { at X,Y. (at 10,15 in this case) }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READSTR(X,Y,LEN : INTEGER;
- PATTR : INTEGER;
- PROMPT : STR80;
- IATTR : INTEGER;
- VAR INSTRING : STR80;
- VALID : ETYPE;
- CANEDIT : CTYPE;
- EXITCH : ETYPE;
- XLOC,
- YLOC : INTEGER;
- CH1 : CHAR);
- (*
-
- WHERE X = X Location of Where Prompt will start.
- Y = Y Location of Where Prompt will start.
- LEN = Maximum Length of Input Field.
- PATTR = Color Attributes of Prompt.
- PROMPT = Prompt that will appear at X,Y.
- IATTR = Color Attributes of Input Field.
- INSTRING = Variable Parameter being Edited.
- VALID = Valid Characters that can be entered for Field.
- CANEDIT = Which Positions of Field that can be edited.
- EXITCH = Characters Entered from Keyboard Used to Exit Edit.
- XLOC,
- YLOC = Location on screen to Update Time (XLOC = 0 for
- no time.) Add 100 to XLOC to initialize the
- cursor at the end of the input field instead of at
- the beginning.
- (Add 100 to YLOC for Auto Capitilization of Words)
- (Add 200 to YLOC for Auto Caps of all characters )
- CH1 = 'M' for Military Time, else AM/PM
-
-
- If you are in the first position of a field and press the RIGHT
- ARROW, CH is converted to UP. If you are in the last position of
- a field and press RIGHT ARROW, CH is converted to DOWN.
-
- UNLESS: If you include NOCONV in your EXITCH, conversion does
- not take place. If you are in the first postion of a field,
- pressing LEFT ARROW will cause you to exit and leave the value
- of CH set to LEFT. If you are in the last position of a field
- pressing RIGHT ARROW will cause you to exit and leave the value
- CH set to RIGHT.
-
- If CLEAR is included in EXITCH then the value being edited is
- set to spaces.
-
- *)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READSTR_BIG(X,Y,LEN : INTEGER;
- PATTR : INTEGER;
- PROMPT : STR80;
- IATTR : INTEGER;
- VAR INSTRING : STRING;
- VALID : ETYPE;
- CANEDIT : CTYPE;
- EXITCH : ETYPE;
- XLOC,
- YLOC : INTEGER;
- CH1 : CHAR;
- WIN : INTEGER);
-
- (* Scrolling string Input. *)
- (* All parameters are the same as *)
- (* READSTR except the addition of WIN.*)
- (* WIN is the size of the input field *)
- (* for this input, LEN is the total *)
- (* possible length of INSTRING. *)
- (*════════════════════════════════════════════════════════════════════════*)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE READ_WRITE(NAME : STRING);
-
- { Sets Filename "NAME" to READ-WRITE.}
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE REBUILD_SCREEN(VAR SCREEN : BUFFER);
-
- { SEE SAVE_SCREEN ABOVE }
- { }
- { CAUTION ! In 43 Line Mode, Will only Restore top 25 lines.}
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE SAVE_SCREEN(VAR SCREEN : BUFFER);
-
- { DEFINE A VARIABLE: }
- { VAR }
- { S : BUFFER; }
- { }
- { SAVE_SCREEN(S); Saves Current Screen in S. }
- { REBUILD_SCREEN(S); Restores Screen to S. }
- { }
- { CAUTION ! IN 43 LINE MODE, WILL ONLY SAVE TOP 25 LINES }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION SCREEN_ATTR(X,Y : INTEGER) : BYTE;
-
- { TEXTATTR := SCREEN_ATTR(10,20); }
- { Returns the Screen Color at X,Y. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE SET_ATTR(X : LINE_SET; Y : INTEGER;ATTRIB : BYTE);
-
- { SET_ATTR([1..4,10],Y,$07); }
-
- { Sets the Columns 1 thru 4 and 10 on line Y }
- { to Background Color 0 (BLACK) }
- { and Foreground COLOR 7 (LIGHTGRAY) }
- { CAUTION ! Use this only above line 26 if in 43 line mode. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE SET_ATTR_BOX(X1,Y1,X2,Y2,ATT : INTEGER);
-
- (* Sets Screen Attributes of the box
- X1,Y1,X2,Y2 to the Colors of ATT.
- Coordinates are the same as Turbo
- Pascals Window Procedure. *)
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE SET_CURSOR(CURS : CURTYPE);
-
- { SET_CURSOR(NONE); Makes Cursor Invisable. }
- { SET_CURSOR(UNDERLINE); Makes Normal Cursor. }
- { SET_CURSOR(BLOCK); Makes Block Cursor. }
- { SET_CURSOR(HALF); Makes a Half Cursor. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE SHOW_VERSION;
-
- { Displays a Window and the contents of the }
- { global variable VERSION. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION SPACES(NUM : Word) : STRING;
-
- { S := SPACES(25); Will Initialize the variable S }
- { to 25 spaces. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE START_TIMER(VAR T : LONGINT);
-
- { START_TIMER(TIM); Will Start a timer by setting the }
- { value of TIM (or any LONGINT) to }
- { a time related value. }
- { By calling ELAP_TIME with this }
- { same variable, you can tell how }
- { many seconds has elapsed. }
- { This routine works accurately }
- { for over 30 years. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE UN_ENCRYPT(VAR LINE : STRING; I : INTEGER);
-
- { UN-ENCRYPTS A STRING USING I AS KEY.}
-
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION UPPERCASE(S : STRING) : STRING;
-
- { S := UPPERCASE(S); Will Uppercase all Lowercase }
- { characters in the string S. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE UP_SOUND;
-
- { Makes a Sound of Increasing Pitch. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION WHOAMI : STRING;
-
- { S := WHOAMI; Returns the complete Drive & }
- { Pathname & Filename of the }
- { C:\TEST\FILENAME.EXE program being executed. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE WRITE_DATE(X, Y : INTEGER; WORDS : CHAR);
-
- { WRITE_DATE(X,Y,'W'); Will display the current }
- { date in words at screen }
- { location X,Y. }
- { March 2, 1988 }
- { 03/02/88 Any character except W }
- { will display it in }
- { 03/02/88 format. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE WRITE_TIME(X, Y : INTEGER; MILITARY : CHAR);
-
- { WRITE_TIME(X,Y,'M'); Will display the current }
- { time in Military Format }
- { 14:52 at screen location X,Y. }
- { 2:52 pm }
- { Any Character Except M }
- { will display time in AM/PM.}
- { The Colon Will Flash. }
- (*════════════════════════════════════════════════════════════════════════*)
- PROCEDURE WRITE_X80_Y25(CH : CHAR; ATTRIB : INTEGER);
-
- (* Writes CH at Column 80 on Line 25
- in the Colors of ATTRIB without
- scrolling. *)
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION _REAL(INSTRING : STRING) : REAL;
-
- { Returns a REAL value from string. }
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION _INTEGER(INSTRING : STRING) : INTEGER;
-
- { Returns an INTEGER value from string.}
- (*════════════════════════════════════════════════════════════════════════*)
- FUNCTION _LONGINT(INSTRING : STRING) : LONGINT;
-
- { Returns a LONGINT from a string. }
- (*════════════════════════════════════════════════════════════════════════*)
-
-
-
-